package com.jy.myhome.service;

import com.jy.myhome.dao.HouseDao;
import com.jy.myhome.dao.UserDao;
import com.jy.myhome.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.*;

@Service
public class HouseServiceImpl implements HouseService{
    @Autowired
    HouseDao hd;

    //添加评论
    public Integer addComment(Comment comment){
        //发布时间
        Date date= new Date(System.currentTimeMillis());
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        comment.setPublish(sdf.format(date));
        return hd.addComment(comment);
    }

    //查询指定房源评论列表
    public List findComment(Integer chouseid){
        return hd.findComment(chouseid);
    }

    //修改房源信息
    @Override
    public Integer updateHouse(House house) {
        return hd.updateHouse(house);
    }

    //根据id查询指定房源信息
    @Override
    public House findHouseOne(Integer id) {
        return hd.findHouseOne(id);
    }

    //房源和图片以及用户表 三表联查
    public List houseInfo(Integer id){
        return hd.houseInfo(id);
    }

    //根据房源id删除主信息和多张图片
    public Integer deleteById(Integer id){
        //根据房源id删除主信息和多张图片两表联删
        return hd.removeHouse(id);
    }

    //查询新房或二手房最新发布前4条和随机推荐
    public Map findByField(Integer num){
        Map m=new HashMap();
        if(num==1){//最新发布查询
            //新房
            List newTop=hd.findByField("新房");
            //二手房
            List oldTop=hd.findByField("二手房");
            m.put("newTop",newTop);
            m.put("oldTop",oldTop);
        }else if(num==2){//随机查询
            //随机查询房源
            List rand=hd.findByRandom();
            m.put("rand",rand);
        }
        return m;
    }

    //添加房源信息和多张图片
    @Override
    public Integer addHouse(MyJsonObject myjson) {
        //添加房源信息
        //添加当前时间作为发布时间

        Date date= new Date(System.currentTimeMillis());
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        myjson.getHouse().setPublishtime(sdf.format(date));
         hd.addHouse(myjson.getHouse());//返回自动生成的houseid

        //批量添加图片
        List<Img> imgList=new ArrayList<Img>(myjson.getImgs().length);//图片集合
        for(int i=0;i<myjson.getImgs().length;i++){
            myjson.getImgs()[i].setIhouseid(myjson.getHouse().getHouseid());
            imgList.add(myjson.getImgs()[i]);
        }
        return hd.addImg(imgList);
    }

    //查询房源 分页、按条件
    @Override
    public Map findHouseAll(House h) {
        //查询房源
       List houses= hd.findHouseAll(h);
      // System.out.print(houses+"house");

        //查询总房源数量
       Integer total=hd.findHouseCount(h);
      // System.out.print(total+"to");
       //返回给列表集合和总数量给前端
        Map map=new HashMap();
        map.put("houses",houses);
        map.put("total",total);
        return map;
    }
}
